auto merge of #548 : alexcrichton/cargo/frobbing-git-deps, r=brson
authorbors <bors@rust-lang.org>
Wed, 10 Sep 2014 18:03:21 +0000 (18:03 +0000)
committerbors <bors@rust-lang.org>
Wed, 10 Sep 2014 18:03:21 +0000 (18:03 +0000)
commit33cb518a59a32dfe7e0fe05d8062501872328afa
tree9d321f8a40658798f571a2e94d510b447b78e9dd
parent462ad0df360803f27d7e950473bef0a7238791fe
parentc0127391bf789d61c4cf6c546e1500930e6cff2e
auto merge of #548 : alexcrichton/cargo/frobbing-git-deps, r=brson

The previous logic for recompiling any dependency was almost entirely based on
the mtimes of the relevant input files. This isn't quite what's desired for git
and registry dependencies because the mtime could be fluctuating while the files
aren't changing. For example:

1. Project A checks out git repo C at revision C1
2. Project A builds, records mtimes of C
3. Project B checks out git repo C at revision C2
4. Project B builds, records new mtimes of C
5. Project A is rebuilt, rebuilding C b/c mtimes are different

In step 5 here C should not be rebuilt because the revision didn't actually
change.

This commit alters git/registry dependencies to completely bypass the --dep-info
emitted and only rely on the git/registry source to inform what the fingerprint
is. This is the revision/version, respectively, and should be all that's
necessary to track changes to the repo and trigger a rebuild.